<?php

/**
 * @Descripttion : FOXCMS 是一款高效的 PHP 多端跨平台内容管理系统
 * @Author : FoxCMS Team
 * @Date : 2023/6/26   16:21
 * @version : V1.08
 * @copyright : ©2021-现在 贵州黔狐科技股份有限公司 版权所有
 * @LastEditTime : 2023/6/26   16:21
 */

namespace app\api\controller;

use app\common\controller\ApiBase;
use app\common\util\FileUtil;
use app\common\util\ImageUtil;
use think\App;

// 文件管理器
class FileManager extends ApiBase
{
    public function upload()
    {
        $param = $this->request->param();
        $groupId = $param["groupId"] ?? 0;
        $type = $param["type"] ?? 'file'; //文件类型 默认上传文件
        $file = request()->file('file');
        $result = ['code' => 0, 'msg' => '上传失败'];
        if ($type == 'file') { //上传文件
            $fileUtil = new FileUtil();
            if (!$fileUtil->isAllowFile($file)) {
                error("默认只允许上传word、pdf、text、excel文档文件");
            }
            if (!$fileUtil->validation($file)) {
                error("上传文件后缀或大小和后台设置不满足");
            }
            $result = $fileUtil->upload($file, $groupId);
        } elseif ($type == 'image') { //上传图片
            $imageUtil = new ImageUtil();
            if (!$imageUtil->isAllowFile($file)) {
                error("默认只允许上传常见图片格式");
            }
            if (!$imageUtil->validation($file)) {
                error("上传图片后缀或大小和后台设置不满足");
            }
            $result = $imageUtil->upload($file);
        }
        if ($result["code"] != 1) {
            error($result["msg"]);
        }
        $file = $result['file'];
        if (!(preg_match('/(http:\/\/)|(https:\/\/)/i', $file))) { //判断是否存在
            if (str_starts_with($file, "/")) {
                $file = substr($file, 1, strlen($file));
            }
            $file =  $this->domain . $file;
            $result['file'] = $file;
        }
        success("上传成功", "", ["file" => $result["file"], "id" => $result["id"]]);
    }
}